/*
 * Estadistico.h
 *
 *  Created on: 23/06/2010
 *      Author: ignacio
 */

#ifndef ESTADISTICO_H_
#define ESTADISTICO_H_

#include <iostream>
#include "Distribucion.h"
#include "Compresor.h"

class Estadistico {

protected:

	static Estadistico* instancia;

	typeFrecuencias* cantidadAccesos;

	typeFrecuencias* cantidadAciertos;

	typeFrecuencias cantidadCaracteres;

	Estadistico(int ordenMaximoPPMC);

	Estadistico(){

		this->cantidadAciertos = NULL;

		this->cantidadAccesos = NULL;
	};

public:

	static unsigned int ordenMaximoPPMC;

	static Estadistico* getInstancia(bool activo=true);

	static void borrarInstancia();

	virtual ~Estadistico();

//	void calcularAciertosPorContexto();

	static void setOrdenMaximoPPMC(int ordenMaximoPPMC);

	virtual void sumarAcceso(int orden);

	virtual void sumarAcierto(int orden);

	virtual void printAciertosPorContexto();

	virtual void sumarCaracteres();
};

#endif /* ESTADISTICO_H_ */
